package simulaco.dto;

import gminet.infra.dao.SimpleTransferObject;

import java.util.List;

public class SimuladoUsuarioSituacao extends SimpleTransferObject {

    private static final long serialVersionUID = 2992964744037335907L;
    
    private static final byte ID_EM_EDICAO = 10;
    private static final byte ID_NAO_INICIADO = 20;
    private static final byte ID_INICIADO = 30;
    private static final byte ID_FINALIZADO = 80;
    private static final byte ID_CANCELADO = 90;

    public static final SimuladoUsuarioSituacao EM_EDICAO = new SimuladoUsuarioSituacao(ID_EM_EDICAO, "Em edição");
    public static final SimuladoUsuarioSituacao NAO_INICIADO = new SimuladoUsuarioSituacao(ID_NAO_INICIADO, "Não iniciado");
    public static final SimuladoUsuarioSituacao INICIADO = new SimuladoUsuarioSituacao(ID_INICIADO, "Iniciado");
    public static final SimuladoUsuarioSituacao FINALIZADO = new SimuladoUsuarioSituacao(ID_FINALIZADO, "Finalizado");
    public static final SimuladoUsuarioSituacao CANCELADO = new SimuladoUsuarioSituacao(ID_CANCELADO, "Cancelado");

    static {
        addObject(SimuladoUsuarioSituacao.class, EM_EDICAO);
        addObject(SimuladoUsuarioSituacao.class, NAO_INICIADO);
        addObject(SimuladoUsuarioSituacao.class, INICIADO);
        addObject(SimuladoUsuarioSituacao.class, FINALIZADO);
        addObject(SimuladoUsuarioSituacao.class, CANCELADO);
    }

    protected SimuladoUsuarioSituacao() {

        this(0, null);
    }

    private SimuladoUsuarioSituacao(int i, String str) {

        super(i, str);
    }
    
    public boolean isCancelado() {
        
        return this.getCodigo() == ID_CANCELADO;
    }

    @SuppressWarnings("unchecked")
    public static List<SimuladoUsuarioSituacao> getList() {

        return (List<SimuladoUsuarioSituacao>) getList(SimuladoUsuarioSituacao.class);
    }

    public static SimuladoUsuarioSituacao getSituacaoById(int id) {
        
        return new SimuladoUsuarioSituacao(id, null);
    }

}
